package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户实验报告业务对象 pt_report
 *
 * @author ruoyi
 * @date 2022-03-26
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("用户实验报告业务对象")
public class PtSysReportBo extends BaseEntity {

    /**
     *
     */
    @ApiModelProperty(value = "", required = true)
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;


    /**
     * 学生学号
     */
    @ApiModelProperty(value = "学生学号", required = true)
    private String userName;

    /**
     * 学生姓名
     */
    @ApiModelProperty(value = "学生姓名", required = true)
    private String nickName;

    /**
     * 班级id
     */
    @ApiModelProperty(value = "班级id", required = true)
    private Long classId;


    /**
     * 学生id
     */
    @ApiModelProperty(value = "学生id", required = true)
    @NotNull(message = "学生id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long userId;

    /**
     * 实验id
     */
    @ApiModelProperty(value = "实验id", required = true)
    @NotNull(message = "实验id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long expId;

    /**
     * 实验报告pdf提交地址
     */
    @ApiModelProperty(value = "实验报告pdf提交地址", required = true)
    @NotBlank(message = "实验报告pdf提交地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String submitUrl;

    /**
     * 提交时间
     */
    @ApiModelProperty(value = "提交时间", required = true)
    @NotNull(message = "提交时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date submitTime;

    /**
     * 实验目的成绩
     */
    @ApiModelProperty(value = "实验目的成绩", required = true)
    @NotNull(message = "实验目的成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scorePurpose;

    /**
     * 实验仪器用具成绩
     */
    @ApiModelProperty(value = "实验仪器用具成绩", required = true)
    @NotNull(message = "实验仪器用具成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scoreTool;

    /**
     * 实验原理成绩
     */
    @ApiModelProperty(value = "实验原理成绩", required = true)
    @NotNull(message = "实验原理成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scorePrinciple;

    /**
     * 实验内容成绩
     */
    @ApiModelProperty(value = "实验内容成绩", required = true)
    @NotNull(message = "实验内容成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scoreContent;

    /**
     * 实验数据处理成绩
     */
    @ApiModelProperty(value = "实验数据处理成绩", required = true)
    @NotNull(message = "实验数据处理成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scoreData;

    /**
     * 实验现象及分析成绩
     */
    @ApiModelProperty(value = "实验现象及分析成绩", required = true)
    @NotNull(message = "实验现象及分析成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scoreSum;

    /**
     * 最终实验报告成绩
     */
    @ApiModelProperty(value = "最终实验报告成绩", required = true)
    @NotNull(message = "最终实验报告成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private Double scoreFinal;

    /**
     * 0正常 1禁用
     */
    @ApiModelProperty(value = "0正常 1禁用", required = true)
    @NotBlank(message = "0正常 1禁用不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;


}
